package com.ad.pet.data;//package com.quncan.peijue.data;
//
//import android.content.Context;
//import android.text.TextUtils;
//
//import com.quncan.logger.Logger;
//import com.quncan.peijue.App;
//import com.quncan.peijue.common.data.utils.SpUtil;
//import com.quncan.peijue.common.structure.key.TokenKey;
//
//import org.greenrobot.greendao.database.Database;
//import org.greenrobot.greendao.database.DatabaseOpenHelper;
//
//
//
///**
// * Created by z on.
// * Des:dao 工厂
// * Date: 2017/6/1
// */
//
//public class DaoFactory {
//    private static final String TAG = "DaoFactory";
//    private static final Context sContext = App.getApp().getApplicationContext();
//    private static final SpUtil sSpUtil = SpUtil.getInstance();
//    private static String firstDbName;
//    private static DBOpenHelper sDbOpenHelper;
////    private static DaoMaster sDaoMaster;
////    private static DaoSession sDaoSession;
//    private static Database sDatabase;
//
//    /**
//     * 得到一个数据库
//     *
//     * @param dbName 数据库名称
//     * @return
//     */
//    public static Database createDatabase(String dbName) {
//        DatabaseOpenHelper databaseOpenHelper = createDatabaseOpenHelper(dbName);
//        if (databaseOpenHelper == null) {
//            return null;
//        }
//        if (sDatabase == null) {
//            //.getEncryptedReadableDb(Utils.getDeviceId());
//            sDatabase = databaseOpenHelper.getWritableDb();
//        }
//        return sDatabase;
//    }
//
//    /**
//     * 创建一个SqliteOpenHelper 一个用户对于一个数据库
//     *
//     * @param dbName 数据库
//     * @return
//     */
//    public static DatabaseOpenHelper createDatabaseOpenHelper(String dbName) {
//        if (!TextUtils.isEmpty(dbName)) {
//            if (check(dbName)) {
//                Logger.d(TAG, "createDatabaseOpenHelper New newInstance..." + dbName);
//                sDbOpenHelper = new DBOpenHelper(sContext, dbName);
//            }
//
//        }
//        return sDbOpenHelper;
//    }
//
//    /**
//     * 创建一个master 只会创建一次
//     *
//     * @param dbName 数据库名称
//     * @return
//     */
//    public static DaoMaster createDaoMaster(String dbName) {
//        Database database = createDatabase(dbName);
//        if (database == null) {
//            return null;
//        }
//        if (sDaoMaster == null) {
//            Logger.d(TAG, "createDaoMaster New newInstance...");
//            sDaoMaster = new DaoMaster(database);
//        }
//
//        return sDaoMaster;
//    }
//
//    /**
//     * 创建一个session   只创建一次
//     *
//     * @param dbName 数据库名称
//     * @return
//     */
//    public static DaoSession createDaoSession(String dbName) {
//
//        DaoMaster daoMaster = createDaoMaster(dbName);
//        if (daoMaster == null) {
//            return null;
//        }
//        if (sDaoSession == null) {
//            Logger.d(TAG, "createDaoSession New newInstance...");
//            sDaoSession = daoMaster.newSession();
//        }
//        return sDaoSession;
//    }
//
//    /**
//     * 获取session 数据库的名字为用户id
//     *
//     * @return
//     */
//    public static DaoSession getSessionDao() {
//        String dbName = sSpUtil.getString(TokenKey.USER_ID) + ".db";
//        return createDaoSession(dbName);
//    }
//
//    /**
//     * 检查是否需要重新开启一个数据库
//     *
//     * @param name 数据库名称
//     * @return 结果
//     */
//    private static boolean check(String name) {
//        if (TextUtils.isEmpty(firstDbName) || !firstDbName.equals(name)) {
//            firstDbName = name;
//            sDaoMaster = null;
//            sDaoSession = null;
//            sDatabase = null;
//            return true;
//        }
//        return false;
//    }
//
//    public static DBOpenHelper getDbOpenHelper() {
//        return sDbOpenHelper;
//    }
//}
